private subroutine CopyCRS(CRSout, CRSin)
copy the content of a CRS
variable in another CRS
variable
Arguments
Type |
Intent | Optional | Attributes |
|
Name |
|
type(CRS),
|
intent(out) |
|
|
:: |
CRSout |
|
type(CRS),
|
intent(in) |
|
|
:: |
CRSin |
|
Variables
Type |
Visibility | Attributes |
|
Name |
| Initial | |
integer,
|
public |
|
:: |
i |
|
|
|
Source Code
SUBROUTINE CopyCRS &
!
(CRSout, CRSin)
IMPLICIT NONE
!Arguments with intent(in):
TYPE (CRS), INTENT (IN) :: CRSin
!Arguments with intent(out)
TYPE (CRS), INTENT (OUT) :: CRSout
!Local variables:
INTEGER :: i
!------------end of declaration------------------------------------------------
CRSout % system = CRSin % system
CRSout % name = CRSin % name
CRSout % ellipsoid = CRSin % ellipsoid
CRSout % datum = CRSin % datum
CRSout % basic = CRSin % basic
!erase eventual previous data if present
IF (ALLOCATED (CRSout % param)) THEN
DEALLOCATE ( CRSout % param )
END IF
IF (ALLOCATED (CRSout % description)) THEN
DEALLOCATE ( CRSout % description )
END IF
!Allocate space to complete copy
ALLOCATE ( CRSout % param (SIZE(CRSin % param)) )
ALLOCATE ( CRSout % description (SIZE(CRSin % description)) )
!copy parameters and descriptions
DO i = 1, SIZE(CRSin % param)
CRSout % param(i) = CRSin % param(i)
CRSout % description(i) = CRSin % description(i)
END DO
END SUBROUTINE CopyCRS